package hr.dario.database;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

public class MjestoDataSource {

	// Database fields
	private SQLiteDatabase database;
	private MySQLiteHelper dbHelper;
	private String[] allColumns = { MySQLiteHelper.COLUMN_ID, 
			MySQLiteHelper.COLUMN_IME_MJESTA,
			MySQLiteHelper.COLUMN_COMMENT };

	public MjestoDataSource(Context context) {
		dbHelper = new MySQLiteHelper(context);
	}

	public void open() throws SQLException {
		database = dbHelper.getWritableDatabase();
	}

	public void close() {
		dbHelper.close();
	}

	public Mjesto createMjesto(String imeMjesta, String comment) {
		ContentValues values = new ContentValues();
		values.put(MySQLiteHelper.COLUMN_IME_MJESTA, imeMjesta);
		values.put(MySQLiteHelper.COLUMN_COMMENT, comment);
		long insertId = database.insert(MySQLiteHelper.TABLE_MJESTA, null,
				values);
		// To show how to query
		Cursor cursor = database.query(MySQLiteHelper.TABLE_MJESTA,
				allColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null,
				null, null, null);
		cursor.moveToFirst();
		return cursorToMjesto(cursor);
	}

	public void deleteComment(Mjesto mjesto) {
		long id = mjesto.getId();
		System.out.println("Comment deleted with id: " + id);
		database.delete(MySQLiteHelper.TABLE_MJESTA, MySQLiteHelper.COLUMN_ID
				+ " = " + id, null);
	}

	public List<Mjesto> getAllMjesta() {
		List<Mjesto> mjesta = new ArrayList<Mjesto>();
		Cursor cursor = database.query(MySQLiteHelper.TABLE_MJESTA,
				allColumns, null, null, null, null, null);
		cursor.moveToFirst();
		while (!cursor.isAfterLast()) {
			Mjesto mjesto = cursorToMjesto(cursor);
			mjesta.add(mjesto);
			cursor.moveToNext();
		}
		// Make sure to close the cursor
		cursor.close();
		return mjesta;
	}

	private Mjesto cursorToMjesto(Cursor cursor) {
		Mjesto mjesto = new Mjesto();
		mjesto.setId(cursor.getLong(0));
		mjesto.setImeKluba(cursor.getString(1));
		mjesto.setComment(cursor.getString(2));
		return mjesto;
	}
}